package com.hejing.Map接口及其实现类的使用;

import org.junit.Test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

/**
 * ClassName: PropertiesTest
 * Package: com.hejing.Map接口及其实现类的使用
 * Description:
 *
 * @Author: HeJing
 * @Create: 2023-05-20 19:22
 * @Version: 1.0
 */
public class PropertiesTest {
    @Test
    public void test01() throws IOException {
        // 方式1: 数据和代码的耦合度高；如果修改的话，需要重写编译代码，打包发布，很繁琐。
        // 数据
        String name1 = "Tom";
        String password1 = "abc123";

        // 用于操作name 和 password 的代码
        // ....

        // 方式2: 将数据封装到具体的配置文件中，在程序中读取配置文件的信息，实现了数据和代码的解耦。
        // 由于我们没有修改代码，就省去了重新编译和打包的过程。
        File file = new File("info.properties");
        // System.out.println(file.getAbsolutePath());  查看配置文件所在位置。

        FileInputStream fis = new FileInputStream(file);

        Properties pros = new Properties();
        pros.load(fis);  // 加载流(fis)中的文件(file)中的数据。

        fis.close();

        // 读取数据
        String name = pros.getProperty("name");
        String pwd = pros.getProperty("password");


        System.out.println(name + ": " + pwd);


    }
}























